home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / COBOL / H309.ZIP / PSICO.ZIP / PSICO12.EXE / READTWO.P12 < prev    next >
Text File  |  1993-02-12  |  26KB  |  708 lines

  1. ==============================================================================
  2.  
  3.  
  4. TRANTOR LTD                    Home/Office  0639-633072
  5. TRANTOR HOUSE                  Mobile       0836-795445
  6. GREEN HEDGES
  7. PONTARDAWE ROAD
  8. BRYNCOCH
  9. NEATH  SA10 7YL                Managing Director:
  10. WEST GLAMORGAN                 N.H.Jennings, B.Sc, C.Eng, MBCS
  11. SOUTH WALES, UK
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18. ==============================================================================
  19.  
  20.                        PSICO STRUCTURED COBOL GENERATOR
  21.                                  VERSION 1.1
  22.  
  23. ==============================================================================
  24.  
  25.                                    Contents
  26.  
  27.  1.   Conditions of sale
  28.  2.   About TRANTOR and our software
  29.  3.   Registration
  30.  4.   Items supplied on the disk
  31.  5.   Use and Performance
  32.  6.   History
  33.  7.   Documentation
  34.  8.   Latest news
  35.  
  36.  
  37. This software requires only a single drive, only 512k of memory, and uses
  38. only text-mode screens, so it should run on almost ANY IBM-compatible PC.
  39.  
  40.  
  41. ==============================================================================
  42.                             1. Conditions of sale
  43. ==============================================================================
  44.  
  45. Copyright is retained by the author. The software on this disk is NOT public
  46. domain, and the purchaser is granted a limited licence to copy and distribute
  47. it, subject to the following conditions:
  48.  
  49.    No changes are made to any file
  50.  
  51.    All files on the supplied disk are included on the copy
  52.  
  53.    No charge is made other than a reasonable fee for media, postage and copying
  54.  
  55.  
  56. ==============================================================================
  57.                       2. About TRANTOR and our software
  58. ==============================================================================
  59.  
  60. Trantor  Ltd  is  a  small  consultancy  specialising  in  software for ICL
  61. mainframes. Our programs are installed on ICL Mainframes in the UK, and  as
  62. far away as Australia
  63.  
  64. Our current range includes the following items which run under ICL's VME
  65. operating system (and some also on IBM mainframes under MVS). Please
  66. contact us for further details.
  67.  
  68.  
  69. ICL and IBM:
  70.     COBFORM  : COBOL reformatter and Structured programming preprocessor
  71.     COBSTR   : Creates program structure chart from the source code
  72.                   (including PERFORMS and GO TO's)
  73.  
  74. ICL only:
  75.     PSICO    : Structured COBOL development aid
  76.     MFE      : MULTI_FILE_EDIT               PC demo available on request
  77.     FAM      : File_Amender                  PC demo available on request
  78.     MANTXREF : MANTIS cross reference        PC demo available
  79.     MANTRA   : MANTIS utilities
  80.  
  81. IBM PC:
  82.  
  83.     COBFORM  : as above
  84.     COBSTR   : as above
  85.     COBXREF  : COBOL Cross reference list
  86.  
  87.     PSICO    : Structured COBOL development aid
  88.     TRANSIT  : Utility for copying files via floppy disk
  89.     MATCH    : Interactive file compare (available soon)
  90.  
  91.  
  92. 2.1 COBOL Reformatter - COBFORM
  93. ===============================
  94.  
  95. This program allows you to reformat COBOL programs to conform to your
  96. own preferred layout. It also contains a structured programming preprocessor
  97. which converts structured programming commands into valid COBOL.
  98.  
  99. The layout of the converted program is defined in a table which specifies
  100. the alignment of selected COBOL verbs, reserved words and datanames.
  101. Two sample tables are supplied, one of which contains the structure verbs.
  102.  
  103. The table also allows you to perform global replacements of selected keywords
  104. througout the text, thus you can change all occurrences of a dataname or a
  105. paragraph name.
  106.  
  107. From version 2.8, COBOL MACROs are introduced. A library of well designed
  108. and tested macros can make a substantial contribution to productivity, as
  109. well as reducing the scope for program errors.
  110.  
  111. You  can  automatically  insert  Trace  and  Path Analysis code into a test
  112. version of the source, and a number of  other  options  are  available,  eg
  113. number of columns indentation after an IF.
  114.  
  115.  
  116. The reformatting table
  117. ======================
  118. Up to 250 table entries are allowed in this version. Full details are given in
  119. the User Guide provided.
  120.  
  121.  
  122. 2.1.1 The Reformatting process
  123. ==============================
  124.  
  125. The COBOL program is dissected into individual words. Each word is checked
  126. against the reformatting table (unless it is a literal) to see what alignment
  127. and/or textual replacement is required.
  128. The output words are then reassembled into COBOL source statements and written
  129. to the output file.
  130.  
  131. Error messages are embedded as comments in the output source file.
  132.  
  133. Certain words are subject to special processing, as noted below:
  134.  
  135.    IF/ELSE       )
  136.    SEARCH/WHEN   )   All trigger automatic indentation. This is
  137.    AT END        )   turned off by a full stop.
  138.  
  139.    GO TO         The word TO is treated as part of the GO, and is not
  140.                  aligned. (The TO following a MOVE IS subject to alignment)
  141.  
  142. Textual replacement can be used to replace, eg PIC by PICTURE throughout
  143. the source. Alignment is applied AFTER the substitution, so the output is
  144. always correctly aligned.
  145. You can also replace > by the words IS GREATER THAN if so inclined.
  146.  
  147. 2.1.2 Input requirements
  148. ========================
  149.  
  150. a) For reformatting, the input should be a valid COBOL source.
  151.  
  152.    It may have 4 or 6 digit line numbers, for compatibility with UTAH
  153.    source formats. The output will ALWAYS have 6 digit line numbers.
  154.  
  155.    Line numbers are not actually necesssary, as the output numbers are
  156.    always generated.
  157.  
  158.    If a non-existent file is specified, a COBOL error will be reported,
  159.    and the run is abandoned.
  160.  
  161. b) For preprocessing a structured program, input should be COBOL plus
  162.    the structure verbs defined elsewhere in this menu system.
  163.  
  164. c) The input table must also be specified. Two 'starter' tables are
  165.    provided, which can be amended as necessary for your own formatting
  166.    requirements.
  167.  
  168. 2.1.3. Structured preprocessor.
  169. ===============================
  170.  
  171. This is built-in to the reformatter and allows the use of the following
  172. structure constructs.
  173.  
  174.  
  175. PROC command
  176. ============
  177.  
  178. SYNTAX:
  179.        PROC      procname
  180.        PROCBEGIN
  181.            procedure-body
  182.        PROCEND
  183.  
  184.  Notes: a) Structure commands may be in COBOL margin A or B
  185.         b) procname must be valid for a COBOL section name
  186.         c) procedure-body is an interation and/or a nest of structures
  187.  
  188. This command generates a COBOL section containing the specified structures.
  189.  
  190. EXAMPLE:       PROC A-MAIN PROCBEGIN
  191.                    OPEN INPUT INFILE
  192.                    PERFORM B-PROCESS
  193.                    CLOSE INFILE
  194.                    STOP RUN
  195.                PROCEND
  196.  
  197.  
  198. IPROC command
  199. =============
  200.  
  201. SYNTAX: a) Inverted routine                 b) Multithread routine
  202.        IPROC      procname                     IPROC     procname
  203.        PSVNAME    numeric-item                 PSVNAME   numeric-array
  204.        PROCBEGIN                               PSVTHREAD numeric-item
  205.            procedure-body                      PROCBEGIN
  206.        PROCEND                                    procedure-body
  207.                                                PROCEND
  208.  
  209.  Notes: a) Structure commands may be in COBOL margin A or B
  210.         b) procname must be valid for a COBOL section name
  211.         c) procedure-body is an interation and/or a nest of structures
  212.         d) numeric-item is used as a state variable or as an array index
  213.         e) numeric-array is an array of state variables
  214.  
  215. This command generates a multi-state routine, which may be either single-thread
  216. or multi-thread depending on whether a PSVTHREAD is specified.
  217.  
  218. An example of a multi-state routine is provided in the example BINTREE.STR
  219. where it is used for creating a binary tree
  220.  
  221.  
  222. RPROC command - Recursive procedure
  223. ===================================
  224. SYNTAX:  Multithread routine
  225.        RPROC      procname
  226.        PSVNAME    numeric-array
  227.        PSVTHREAD  numeric-item
  228.        PROCBEGIN
  229.            procedure-body
  230.        PROCEND
  231.  
  232.  Notes: a) Structure commands may be in COBOL margin A or B
  233.         b) procname must be valid for a COBOL section name
  234.         c) procedure-body is an interation and/or a nest of structures
  235.         d) numeric-item is used as a stack pointer
  236.         e) numeric-array is an array of state variables, used as a stack
  237.  
  238. This generates a recursive routine. Eaxmples are given in BINTREE.STR and
  239. FACTORL.STR
  240.  
  241. The subcommand RCALL may be used only within a recursive procedure, and
  242. performs the recursion.
  243.  
  244.  
  245. SEQUENCE structure
  246. ==================
  247.  
  248. This contains a structure body which is always obeyed once.
  249.  
  250. The body may contain any mix of COBOL statements and structures.
  251.  
  252. EXAMPLE:
  253.  
  254.         SEQUENCE
  255.             MOVE 1 TO WS-COUNT
  256.             ITERUNTIL  WS-COUNT > 10
  257.             BEGIN
  258.                 PERFORM DA-PROCESS
  259.                 ADD 1 TO WS-COUNT
  260.             REPEAT
  261.             DISPLAY "FINISHED"
  262.          FI
  263.  
  264.  
  265. For further examples, see BINTREE.STR supplied with the software.
  266.  
  267.  
  268. SELECT structure
  269. ================
  270.  
  271. This contains a number (from 1 to 9999) of conditions, each followed by a
  272. structure body to be obeyed if the condition is true.
  273.  
  274. Only one of the bodies will be obeyed.
  275.  
  276. The body may contain any mix of COBOL statements and structures.
  277. Note that each condition must be delimited by the word BEGIN.
  278.  
  279. EXAMPLE:
  280.         SELECT
  281.          CASE WS-OPT = "A"
  282.          BEGIN
  283.             PERFORM CA-ASCENDING
  284.          CASE WS-OPT = "D" BEGIN
  285.             PERFORM DA-DESCENDING
  286.          OTHERWISE
  287.             DISPLAY "INVALID OPTION " WS-OPT
  288.          FI
  289.  
  290. For further examples, see BINTREE.STR supplied with the software.
  291.  
  292.  
  293. ITERWHILE and ITERUNTIL structures
  294. ==================================
  295.  
  296. These allow repeated execution of selected code. The condition is always
  297. evaluated at the START of the loop, allowing for the loop executed zero times
  298. ie not at all, if the condition should so indicate.
  299. The body may contain any mix of COBOL statements and structures.
  300.  
  301. EXAMPLE:
  302.             MOVE 0 TO WS-EOF  WS-COUNT
  303.             READ INFILE AT END MOVE 1 TO WS-EOF.
  304.             ITERUNTIL  WS-EOF = 1                ( or ITERWHILE WS-EOF = 0)
  305.             BEGIN
  306.                 PERFORM DA-PROCESS
  307.                 ADD 1 TO WS-COUNT
  308.                 READ INFILE AT END MOVE 1 TO WS-EOF.
  309.             REPEAT
  310.             DISPLAY WS-COUNT " records processed"
  311.  
  312. In this example, the routine works even if there are no records on the input
  313. file, and it correctly counts the number of records read.
  314.  
  315. For further examples, see BINTREE.STR supplied with the software.
  316.  
  317.  
  318. Minor commands
  319. ==============
  320.  
  321.  SREAD and SWRITE are synonymous, and perform pseudo-read (or pseudo-write)
  322.  operations.
  323.  
  324.    They are valid only within an IPROC. The action is to save a note of the
  325.    current address in a state variable and exit from the routine. When the
  326.    routine is reentered, processing resumes at the next instruction rather
  327.    than at the start.
  328.  
  329.    See PROC BA-BUILD-TREE in BINTREE.STR for a good example
  330.  
  331.  RCALL performs a recursive call, and is valid only in an RPROC.
  332.  
  333.    It saves the current address in a stack of state variables, increments
  334.    the stack pointer, and starts again at the beginning of the procedure.
  335.    At the end of the procedure, the stack is unwound, and processing resumes
  336.    at the previous level of the stack.
  337.  
  338.    Examples are to be found in both FACTORL.STR and BINTREE.STR
  339.  
  340.  
  341. 2.1.4. COBOL MACROS
  342. ===================
  343.  
  344. A MACRO is defined as a block of code which can be copied into the COBOL
  345. program, with certain key words replaced by user-specified text.
  346. There are many reasons for doing this, amongst which are:
  347.  
  348.    The MACRO code is predefined and pretested, and likely to be correct.
  349.  
  350.    Coding is likely to be quicker, and there should be fewer compilation
  351.    errors.
  352.  
  353.    Changes to standard functions or data definitions only affect the macro
  354.    definition.
  355.  
  356.    Differences between different dialects of COBOL can be hidden in the
  357.    macros, with a suitable definition being used with each different
  358.    compiler.
  359.  
  360. MACRO DEFINITIONS
  361. =================
  362.  
  363. A MACRO Definition is held in a file with extension .DEF, which must, for
  364. the shareware version, be in the current directory. The registered version
  365. contains a command-lime parameter MDIR which specifies the directory to be
  366. used.
  367.  
  368. The definition contains two parts, the parameter definition and the text
  369. definition.
  370.  
  371. Up to 20 parameters may be defined, each of which should be given a default
  372. value. The parameter name is restricted to 16 characters, and the default
  373. value to 30. If embedded spaces are required in a default value, it should
  374. be enclosed within square brackets ([ ]).
  375.  
  376. The macro text starts after a MACBEGIN statement, and is ended by a MACEND
  377. statement. It may contain ANY COBOL code, with the replaceable parameters
  378. marked by a preceding &. Each parameter used MUST be defined in the list
  379. of parameters, otherwise the code will be passed through unchanged.
  380.  
  381. The parameter name may be followed by an equals sign and a default value,
  382. although this is not obligatory.
  383.  
  384. Layout is free format, within normal COBOL rules, so the following are both
  385. acceptable:
  386.  
  387. 1)     MACRO
  388.            A
  389.            B = WS-LINE
  390.            C
  391.            =
  392.            PR-LINE
  393.        MACBEGIN
  394.            MOVE &A TO &B &C
  395.        MACEND
  396.  
  397. 2)     MACRO A B = WS-LINE C = PR-LINE MACBEGIN  MOVE &A TO &B &C MACEND
  398.  
  399.  
  400. Example of a macro definition
  401. =============================
  402.  
  403.        MACRO
  404.            TEXT          = " "
  405.            COLUMN        = 1
  406.            POINTER       = WS-COL
  407.            DESTINATION   = [PR-LINE WS-LINE]
  408.            DELIM         = SIZE
  409.        MACBEGIN
  410.            MOVE &COLUMN TO &POINTER
  411.            STRING &TEXT
  412.              DELIMITED &DELIM INTO &DESTINATION
  413.              WITH POINTER &POINTER
  414.            DISPLAY "Column-&COLUMN"
  415.        MACEND
  416.  
  417.  
  418. Note that the item to be replaced does not need to be a complete word, and
  419. may also be held within a literal.
  420.  
  421. Thus  "Column-&COLUMN" would be replaced by "Column-1" in the generated
  422. COBOL text.
  423.  
  424.  
  425. Invoking COBOL MACROS
  426. =====================
  427.  
  428. Within a COBOL program, a macro is denoted by a !. Thus !MVTEXT will
  429. include the macro stored in file MVTEXT.DEF.
  430.  
  431. The parameters are currently positional, and the macro statement is terminated
  432. either by a full stop, or by giving all parameters BUT NOT BOTH!. Any
  433. parameters not specified will assume their default values as coded in the
  434. macro definition.
  435.  
  436. The statement follows the usual COBOL rules, ie it must be coded between
  437. colums 8 and 72, and at least one space must be left between each item.
  438.  
  439.    eg       !MVTEXT  WS-NAME 20 WS-COL PR-LINE.
  440.  
  441. Note that as the parameters are positional, in order to gave a value to the
  442. fourth parameter, you must quote values for the first three.
  443.  
  444. See EXAMPLE.STR for a number of examples.
  445.  
  446. At a later release, you will be able to specify parameters by keyword, or
  447. indicate defaulting parameters by commas if using positional parameters.
  448.  
  449. It will also be possible to spread a macro call over several lines, instead
  450. of being restricted to one. I know how to do all this, it's just having the
  451. time to implement it!
  452.  
  453.  
  454. Thus:         !MVTEXT TEXT         =   WS-NAME
  455.                       DESTINATION  =   WS-LINE
  456.                       DELIM        =   SPACE
  457.  
  458. or            !MVTEXT WS-NAME,,,,SPACE
  459.  
  460. will be allowed later.
  461.  
  462.  
  463. 2.2. MULTI_FILE_EDIT
  464. ====================
  465.  
  466. This is a full-screen text editor for ICL 2900 and Series 39 mainframe
  467. computers
  468.  
  469. It features
  470.       Simultaneous editing of a number of files,
  471.       Cut and paste between files
  472.       Split screen working
  473.       Editing of long records (up to 2040 bytes)
  474.       Hexadecimal screen edit
  475.       Built-in COBOL and SCL reformatters
  476.       Insertion of Path Analysis and Trace code into COBOL source
  477.       COBOL Animator, for single step execution with source display
  478.       Text compression
  479.       Built-in structured COBOL preprocessor
  480.  
  481.       and many other useful functions.
  482.  
  483. A PC-based demonstration version, with tutorial file, is available from us
  484. on request, for a nominal charge. (It requires at least 512k of memory.)
  485.  
  486.  
  487. 2.3. FAM - File Amender
  488. =======================
  489.  
  490. For ICL 2900 and Series 39 mainframe computers.
  491.  
  492. This is an interactive utility for amending a serial or indexed file.
  493.  
  494. It features
  495.  
  496.     Full screen record display, including datanames as well as the data
  497.     Conversion of data to and from COMPUTATIONAL, COMP-3 and hexadecimal
  498.     Automatic record initialisation
  499.     Insertion, amendment and deletion of records
  500.     Optional display of COBOL Group names and redefinitions
  501.     Print of selected records
  502.     Optional Autoprint of changed records
  503.  
  504. A PC demonstration version is available on request.
  505.  
  506.  
  507. 2.4. COBXREF - COBOL cross reference
  508. ====================================
  509.  
  510. This provides a sorted cross reference of COBOL programs. It includes all
  511. items which contain only numeric or alphabetic characters. Therefore all
  512. datanames, paragraph and section names, and some COBOL reserved words will
  513. be included, as well as numeric literals and some PICTURE clauses. Most
  514. COBOL verbs are filtered out.
  515. All dialects of COBOL are allowed, provided that the standard COBOL card
  516. layout is used, ie columns 1-6 for sequence, 7 for comment, 8-72 for source
  517. text. The program should cope with quite large programs, with up to 3000
  518. source lines, depending on the complexity and number of datanames.
  519.  
  520.  
  521. 2.5 MATCH : File comparison
  522. ===========================
  523.  
  524. This interactive file comparison will enable two text files to be
  525. compared, with the differences between individual pairs of records
  526. indicated.
  527.  
  528. When a mismatch occurs, the next 8 records of each file are displayed.
  529. You will be able to step one or both files forwards until matching is
  530. re-established, and the program then proceeds to the next mismatching pair.
  531.  
  532. A Preliminary is version available, without the fancy screens planned for
  533. the full version.
  534.  
  535.  
  536. 2.6 PSICO
  537. =========
  538.  
  539. This is a utility to assist with fast and accurate entry of structured
  540. programs. (A version with extra facilities is already provided as part of
  541. the MULTI_FILE_EDIT package on VME - use SCL proc RUNPS).
  542.  
  543. A template is provided for each program structure, and the COBOL code is
  544. inserted into the template. Structure commands may also be entered, which
  545. then trigger display of further templates.
  546.  
  547. Since all structuring is carried out by the program, it is impossible to
  548. make errors in the input of structures, ie no missing END's, mismatched
  549. WHILE and REPEAT etc.
  550.  
  551. The output is a structured program in a suitable form for input to COBFORM,
  552. which will then convert it to standard (ANS74) COBOL. Alternatively, output
  553. can be in  ANS85  COBOL,  in  which  case  certain  structured  programming
  554. extensions such as recursion will NOT be available.
  555.  
  556. Under VME, MULTIFILEEDIT is integrated with PSICO, and the program can be
  557. further amended, converted to COBOL, compiled and tested, all within the
  558. editor environment.
  559.  
  560.  
  561. 2.7  MANTIS utilities from TRANTOR
  562. ==================================
  563.  
  564. This package of utilities for ICL mainframes includes
  565.  
  566.     MANTXREF    Mantis source cross reference, available online within a
  567.                 MANTIS service, and also as a normal MAC procedure
  568.  
  569.     MANTEXPORT  Extracts a MANTIS program from a cluster into a file
  570.  
  571.     MANTIMPORT  Uses Batch MANTIS to load a program from a file into a
  572.                 cluster
  573.     MANT2COB    Produces a COBOL record layout from a MANTIS external file
  574.  
  575.     MANTSCREEN  Prints or displays a list of datanames on a MANTIS screen,
  576.                 in the order they occur on the screen.
  577.  
  578.     MANTREFORM  Reformats MANTIS source by splitting each line at a
  579.                 statement terminator (Colon). Aids readibility of code.
  580.  
  581.  
  582. *   MANTIS is a registered trade mark of CINCOM
  583.  
  584. ==============================================================================
  585.                                3. Registration
  586. ==============================================================================
  587.  
  588.  
  589. Please send £3 for the shareware version, or £10 for the registered version
  590. of any of our programs, to the address given at the start of this file.
  591.  
  592. Prices valid as at 1st January 1993, but we reserve the right to vary  these
  593. if necessary. If this copy is more than 1 year old, check with us first.
  594.  
  595. ==============================================================================
  596.                     4. Items supplied on the PSICO disk
  597. ==============================================================================
  598.  
  599. These files may be supplied individually, or may be zipped up in a
  600. self-extracting archive depending on the source from which you obtained them.
  601.  
  602.  
  603. File             Content
  604. ====             =======
  605. WHATSNEW         News about the latest version
  606. README.P12
  607. READTWO.P12      This file
  608. PSICO.EXE        PSICO
  609. PSHELP.C74       Online help file for mode S (ANS74 COBOL)
  610. PSHELP.C85       Online help file for mode C (ANS85 COBOL)
  611. HELP.ASC         Introductory message
  612. KEYS.DOC         Explanation of script file format, and key values
  613. CFASK.CFG        Configuration file
  614. MERGE3.ASK       Tutorial self-running script
  615. FILEA      )
  616. FILEB      )     Test data files for program MATCH3 generated by the demo
  617. FILEC      )
  618. FACTORL.STR      A sample structured source, for a program to calculate
  619.                  factorials using a recursive algorithm.
  620.                  It must be preprocessed by COBFORM to produce
  621.                  compilable COBOL.
  622. BINTREE.STR      Another sample structured program. It reads up to 100
  623.                  20 byte records, stores them in a binary tree, and
  624.                  displays them in ascending or descending sequence.
  625. PSICO.DOC        User Guide
  626.  
  627. ==============================================================================
  628.                             5. Use and Performance
  629. ==============================================================================
  630.  
  631. Type  PSICO followed by the command-line parameters (see manual) , but note
  632. that the program, and the files PLAY.ASK and  HELP.ASC  should  be  in  the
  633. current directory.
  634.  
  635. Example: to run the demonstration, type
  636.  
  637.      PSICO MATCH3 C PLAY=MATCH3
  638.  
  639. 5.1 ERRORS
  640. ==========
  641.  
  642. Run-time error 013 will be reported if the input file does not exist.
  643.  
  644. Error 001 usually means that you do not have enough memory to assign file
  645. buffers - get rid of some pop-up (TSR) programs!
  646. Please inform me of any other error messages reported.
  647.  
  648.  
  649. 5.2 HARDWARE REQUIREMENTS
  650. =========================
  651.  
  652. Any IBM compatible PC, with 512k, one drive, and any monitor.
  653.  
  654.  
  655. ==============================================================================
  656.                                   6. History
  657. ==============================================================================
  658.  
  659. The program was originally developed in 1983 on an ICL mainframe. It has
  660. been converted by amending and recompiling the COBOL source, hence the
  661. large EXE file size.
  662.  
  663. Version 1.0  - 1990.
  664. Version 1.1  - May 1991 Same program, different documentation!
  665. Version 1.2  - February 1993 : see WHATSNEW for major changes
  666.  
  667.  
  668. ==============================================================================
  669.                                7. Documentation
  670. ==============================================================================
  671.  
  672. Text file PSICO.DOC contains a user guide. You should also consult the COBFORM
  673. user guide for more information.
  674.  
  675.  
  676. ==============================================================================
  677.                          8. Latest news about COBFORM
  678. ==============================================================================
  679.  
  680. The new version has a Macro capability, in which textual replacement can be
  681. performed upon standard code held in Macro definition files. (Unlike the
  682. COPY REPLACING feature of COBOL, this facility can be used to replace PART
  683. of a COBOL word.)
  684.  
  685. Use of pretested code in this way can make a significant contribution to the
  686. creation of reliable programs. It can also be used to "hide" differences
  687. between different dialects, so that the program is unchanged, but the Macro
  688. definitions reflect the different environments, when using different
  689. hardware.
  690.  
  691. The novel feature in THIS program is that the macro processing is fully
  692. integrated with the structure preprocessor, so that structure commands may
  693. be included within macro definitions, and macros may be included within
  694. structures. Trace and Path analysis code, if required, is added AFTER the
  695. expansion of the macro.
  696.  
  697. A single Macro definition may be as small as one line of text, or may be a
  698. complete COBOL program! Note that nested macros are NOT supported, ie a
  699. macro cannot itself include a macro call.
  700.  
  701. A chunk of plain COBOL code can be used as a parameterless macro - this lets
  702. you change your COPY code into macros or even to carve up an exisiting program
  703. just by copying it into .DEF files. You can then add the MACRO, MACBEGIN and
  704. parameters later if necessary.
  705.  
  706.  
  707.  
  708.